home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / COMAL / T-COMAL Today / (k)ta.d64 / sound.proc < prev    next >
Text File  |  2007-02-28  |  2KB  |  90 lines

  1. 9000 //
  2. 9010 PROC SETFREQUENCY(V,F) 
  3. 9020 POKE SID+(V-1)*7,F MOD 256
  4. 9030 POKE SID+(V-1)*7+1,F DIV 256
  5. 9040 ENDPROC SETFREQUENCY
  6. 9050 //
  7. 9060 PROC PULSE(V,P) 
  8. 9070 POKE SID+(V-1)*7+2,P MOD 256
  9. 9080 POKE SID+(V-1)*7+3,P DIV 256
  10. 9090 ENDPROC PULSE
  11. 9100 //
  12. 9110 PROC ADSR(V,A,D,S,R) 
  13. 9120 POKE SID+(V-1)*7+5,A*16+D
  14. 9130 POKE SID+(V-1)*7+6,S*16+R
  15. 9140 ENDPROC ADSR
  16. 9150 //
  17. 9160 PROC GATE(V,ON'OFF) CLOSED
  18. 9170 TEMP:=INT(PEEK(1020+V)/2)*2
  19. 9180 IF ON'OFF THEN
  20. 9190 TEMP:+1
  21. 9200 ENDIF 
  22. 9210 POKE 1020+V,TEMP
  23. 9220 POKE SID+(V-1)*7+4,TEMP
  24. 9230 ENDPROC GATE
  25. 9240 //
  26. 9250 PROC SYNC(V,S) CLOSED
  27. 9260 TEMP:=PEEK(1020+V)
  28. 9270 TEMP:=(TEMP DIV 4)*4+(TEMP MOD 2)
  29. 9280 TEMP:+S*2
  30. 9290 POKE 1020+V,TEMP
  31. 9300 POKE SID+(V-1)*7+4,TEMP
  32. 9310 ENDPROC SYNC
  33. 9320 //
  34. 9330 PROC RINGMOD(V,R) CLOSED
  35. 9340 TEMP:=PEEK(1020+V)
  36. 9350 TEMP:=(TEMP DIV 8)*8+(TEMP MOD 4)
  37. 9360 TEMP:+R*4
  38. 9370 POKE 1020+V,TEMP
  39. 9380 POKE SID+(V-1)*7+4,TEMP
  40. 9390 ENDPROC RINGMOD
  41. 9400 //
  42. 9410 PROC SOUNDTYPE(V,T) CLOSED
  43. 9420 TEMP:=PEEK(1020+V)
  44. 9430 TEMP:=TEMP MOD 16
  45. 9440 IF T>0 THEN
  46. 9450 TEMP:+(2^(T-1))*16
  47. 9460 ENDIF 
  48. 9470 POKE 1020+V,TEMP
  49. 9480 POKE SID+(V-1)*7+4,TEMP
  50. 9490 ENDPROC SOUNDTYPE
  51. 9500 //
  52. 9510 PROC FILTERTYPE(L,B,H,V3) CLOSED
  53. 9520 TEMP:=PEEK(1019) MOD 16
  54. 9530 TEMP:+V3*128+H*64+B*32+L*16
  55. 9540 POKE 1019,TEMP
  56. 9550 POKE SID+24,TEMP
  57. 9560 ENDPROC FILTERTYPE
  58. 9570 //
  59. 9580 PROC FILTERFREQ(F) 
  60. 9590 POKE SID+21,F MOD 8
  61. 9600 POKE SID+22,F DIV 8
  62. 9610 ENDPROC FILTERFREQ
  63. 9620 //
  64. 9630 PROC FILTER(V1,V2,V3,E) CLOSED
  65. 9640 TEMP:=PEEK(1018)
  66. 9650 TEMP:=(TEMP DIV 16)*16
  67. 9660 TEMP:+V1+V2*2+V3*4+E*8
  68. 9670 POKE SID+23,TEMP
  69. 9680 POKE 1018,TEMP
  70. 9690 ENDPROC FILTER
  71. 9700 //
  72. 9710 PROC RESONANCE(R) CLOSED
  73. 9720 TEMP:=PEEK(1018)
  74. 9730 TEMP:=TEMP MOD 16
  75. 9740 TEMP:+R*16
  76. 9750 POKE SID+23,TEMP
  77. 9760 POKE 1018,TEMP
  78. 9770 ENDPROC RESONANCE
  79. 9780 //
  80. 9790 PROC VOLUME(V) CLOSED
  81. 9800 TEMP:=PEEK(1019)
  82. 9810 TEMP:=(TEMP DIV 16)*16+V
  83. 9820 POKE SID+24,TEMP
  84. 9830 POKE 1019,TEMP
  85. 9840 ENDPROC VOLUME
  86. 9850 //
  87. 9860 FUNC SID 
  88. 9870 RETURN 54272
  89. 9880 ENDFUNC SID
  90.